/*
 * @Author: ipk518 18163976442@163.com
 * @Date: 2023-08-16 15:26:39
 * @LastEditors: ipk518 18163976442@163.com
 * @LastEditTime: 2023-08-16 16:14:40
 * @FilePath: /WingsUpdater-main/inc/Description.h
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#pragma once
#include <string>
#include "Result.h"
#include <limits>

namespace Description 
{

struct Link final 
{
    std::string uniqueSymbolLink;
    std::string pingBank;
    std::string pongBank;
};

struct application final 
{
    size_t directory;
    std::string src;
};

struct image final 
{
    size_t directory;
    std::string src;
    std::string bootPartition;
    std::string mountPoint;
};

struct driver final 
{
    size_t directory;
    std::string src;
    std::string dst;
};

struct other final 
{
    size_t directory;
    std::string src;
    std::string dst; 
};

struct describeItem final 
{
    std::string m_PackName;
    Link m_link;
    application m_app;
    image m_image;
    driver m_driver;
    other m_other;
};

describeItem *currentDescribe();
Result loadDescription(const std::string &path);

} // end of namespace Description